Course Scheduler

A timely application of depth-first search

Motivation

Frustrated by the number of course conflicts resulting from manual planning that students from MSE must appeal for, I came up with a simple algorithm to automate the course scheduling process based on the constraints provided by our faculty members. Here is a sample of a conflict free weekly schedule!


Course Solver Results


Implementation

Constraints

Details about course offerings, available classroom spacing, and schedule preferences are provided by the faculty staff and recorded in 4 year Offerings.xlsx.

Solver

conflict solver.py uses depth-first search to search through the entire search space and returns the most satisfactory schedule based on the provided constraints while adjusting for the completeness of the schedule, as well as the minimum free time between classes. The generated schedule is then applied in graph format using Matplotlib to create a pretty visual representation.